/**
 * 
 */
package com.study.thread;

import java.io.File;
import java.io.FileOutputStream;

/**
 * @author Administrator
 * @date 2019年6月17日
 */
public class DaemonThread2 {

	public static void main(String[] args) throws InterruptedException {
		
		class TestRunnable implements Runnable {

	        @Override
	        public void run() {
	            try {
	                Thread.sleep(1000);
	                
	                File f = new File("demo.txt");
	                FileOutputStream os = new FileOutputStream(f, true);
	                os.write("daemon thread test".getBytes());
	            } catch (Exception e) {

	            }
	        }
	    }

        Runnable r = new TestRunnable();
        Thread t = new Thread(r);
        t.setDaemon(true); //设置了守护线程，主程序执行完了，t线程也跟着关闭
        //t.setDaemon(true)必须在t.start()之前设置

        t.start();
        
        t.join();
        System.out.println("主程序执行完毕。。。。。");
	}
/*
 运行结果：文件daemon.txt中没有"daemon"字符串。
1. 如果把thread.setDaemon(true); //设置守护线程注释掉，文件daemon.txt是可以被写入daemon字符串的
2. 如果设置t.join(); main变为等待状态，等t线程执行完成之后才能执行join后续方法。这样文件daemon.txt是可以被写入daemon字符串的
	 */
}
